<?php
declare (strict_types = 1);

namespace app\common\validate;

use think\Validate;

class Setting extends Validate
{
    /**
     * 定义验证规则
     * 格式：'字段名'	=>	['规则1','规则2'...]
     *
     * @var array
     */	
	protected $rule = [
        'appname'      =>'require|max:32',
        'description'     =>'require|max:500',
        'keywords'     =>'require|max:256',
        'email'   =>'require|max:64',
        'logo'     =>'require|max:125|isFile',

        'record'   =>'max:32',
        'about'   =>'min:125',
    ];
    
    /**
     * 定义错误信息
     * 格式：'字段名.规则名'	=>	'错误信息'
     *
     * @var array
     */	
    protected $message = [
        'appname.require'  => '应用名称不能为空.',
        'appname.max'      => '应用名称长度不能超过32.',

        'description.require'      => '应用描述不能为空.',
        'description.max'      => '应用描述长度不能超过500.',

        'keywords.require'      => '关键字不能为空.',
        'keywords.max'      => '关键字长度不能超过256.',

        'email.require'      => '联系邮箱不能为空.',
        'email.max'      => '邮箱长度不能超过64.',

        'logo.require'      => 'Logo不能为空.',
        'logo.max'      => 'Logo度不能超过125.',
        'logo.isFile'      => '请重新选择图片.',

        'record.max'    => '备案号长度不能超过32',
        'about.min'        => '关于我长度不能小于125'
    ];


    // 自定义验证规则判断分类id是否有效
    protected function isFile($value, $rule, $data=[])
    {
        $file1 = config('filesystem.disks.local.root') . DS . ltrim($value, '\\/');
        $file2 = config('filesystem.disks.public.root') . DS . ltrim($value, '\\/');
        return is_file($file1) || is_file($file2);
    }


}
